package trouger.dmt;

class BaseMapredParams {
	
	/*
	 * common parameters
	 */
	public static String SOURCE_COUNT_PARAM_NAME = "trouger.dmt.mapred.source-count";
	public static String MAX_REDUCE_ITEM_COUNT_PARAM_NAME = "trouger.dmt.reducer.max-reduce-item-count";
	/*
	 * these parameters are one-based indices.
	 * they are string arrays, with each element representing a column list for one source table.
	 * for example, key-column-lists can be String[]{"1 2", "4 3"} if there are two source tables. 
	 */
	public static String KEY_COLUMN_LISTS_PARAM_NAME = "trouger.dmt.mapred.key-column-lists";
	public static String VALUE_COLUMN_LISTS_PARAM_NAME = "trouger.dmt.mapred.value-column-lists";
	
	/*
	 * parameters for mapper
	 */
	public static String CHARSETS_PARAM_NAME = "trouger.dmt.mapper.charsets";
	public static String SEPARATORS_PARAM_NAME = "trouger.dmt.mapper.separators";
	public static String SEGCOUNT_LIST_PARAM_NAME = "trouger.dmt.mapper.segcount-list";
	public static String SOURCERECORDFILTER_CLASSNAME_PARAM_NAME = "trouger.dmt.mapper.sourcerecordfilter-classname";
	public static String SOURCE_PATH_PATTERNS_PARAM_NAME = "trouger.dmt.mapper.source-path-patterns";
	
	/*
	 * parameters for reducer
	 */
	public static String SEPARATOR_PARAM_NAME = "trouger.dmt.reducer.separator";
	public static String NULLNOTATION_PARAM_NAME = "trouger.dmt.reducer.null-value-notation";
	public static String OUTPUTRECORDFILTER_CLASSNAME_PARAM_NAME = "trouger.dmt.reducer.outputrecordfilter-classname";
	/*
	 * if this parameter is not provided, the result-fields-indices parameter must be provided,
	 * to allow the reducer to perform a default operation.
	 * if this parameter is valid, the reducer will use a custom record group filter,
	 * and the result-fields-indices parameter will be ignored.
	 */
	public static String RECORDGROUPFILTER_CLASSNAME_PARAM_NAME = "trouger.dmt.reducer.recordgroupfilter-classname";
	/*
	 * a series of sourceIndex.columnIndex, separated by one space.
	 * all indices are one-based. for example: "1.2 1.1 2.4 1.3".
	 */
	public static String RESULT_FIELDS_INDICES_PARAM_NAME = "trouger.dmt.reducer.resultfields-indices";
	
	
	
}
